package com.woniu.service;

import com.woniu.pojo.*;

import javax.servlet.http.HttpSession;
import java.util.List;
import java.util.Map;
import java.util.Set;

public interface UserService {
   String login(String phone, Integer code1);

    List<User> findAllUser();
    Boolean codeVerification(HttpSession session, String code);
    User login(User user);
    //修改密码
    Boolean changePwd(User user, String pwd1, String pwd2);

    void updatePersonalMassage(User user, HttpSession session);

    void findUstate(User user);

    List<School> findAllArea();

    Map<String,Object> searchface(StringBuffer imagebase64);
    /**
     *  加班所需要的用户信息集合
     * @return   userList
     */
    List<User> findAll4workselect();

    User findOne(Integer uid);

 Set<String> findUserRoles(Integer uid);

 User findOneByUaccount(String username);

 Set<String> findUserPermission(Integer uid);

 User findOneByUphone(String uPhone);

 void resertPwd(String uphone);
    /**
     * 分页展示用户的信息
     * @param pageBean
     * @param user
     * @return
     */
    Map<String, Object> findByPage(PageBean pageBean, User user);

    /**
     * 改变用户的锁定状态
     * @param uid
     * @return
     */
    int changesoftdel(Integer uid);

    /**
     * 批量改变用户的锁定状态
     * @param uid
     * @return
     */
    int changesoftdelmany(Integer[] uid);

    /**
     * 新增一个用户
     * @param user
     * @return
     */
    int saveone(User user,String cid);

    /**
     * 通过主键查询用户信息
     * @param rid
     * @return
     */
    User selectByuid(Integer rid);

    /**
     * 查询所有的用户状态
     * @return
     */
    List<String> selectustate();

    /**
     * 数据库保存修改后的信息
     * @param user
     * @return
     */
    int updateone(User user);


    /**
     * 查询uid对应的和没有的角色
     * @param uid
     * @return
     */
    Map<String, Object> roleshow(Integer uid);

    /**
     * 增加角色
     * @param uid
     * @param rid
     * @return
     */
    int saverole(Integer uid, Integer rid);

    /**
     *收回角色
     * @param uid
     * @param rid
     * @return
     */
    int deleterole(Integer uid, Integer rid);
    /**
     * 增加权限
     * @param rid
     * @param pid
     * @return
     */
    int savepermission(Integer rid, Integer pid);

    /**
     * 收回权限
     * @param rid
     * @param pid
     * @return
     */
    int deletepermission(Integer rid, Integer pid);
    /**
     * 使用userrole找到讲师
     *
     * @return
     */
    List<User> findTeacher();

    /**
     * 查看所有的角色
     * @return
     */
    List<Role> findAllRole();

    String EmailLogin(String email,HttpSession session);

    User findOneByEmail(String email);

    User findOneByfaceid(String faceid);

    /**
     * 增加一个角色
     * @param rname
     * @return
     */
    int addRole(String rname);
}
